The World Wide Web has expanded to provide web services faster to consumers. Web services may be provided by a web application which uses one or more services to handle a transaction. The applications may be distributed over several machines, making the topology of the machines that provides the service more difficult to track and monitor.
Managing configuration of software that provides a distributed business transaction can be cumbersome. When considering computer systems and software applications in a large data center, ensuring that these systems are property configured is a serious challenge. With the recent trends towards micro service architectures, the complexities of configuration have only gotten more difficult, as it becomes easier and easier to misconfigure not just an individual node, but to misconfigure the system topology.
In addition, with recent trends towards agile software development with frequent (sometimes even multiple times per day) releases of new code, ensuring that the correct version of software is deployed on the correct computer systems becomes its own configuration challenge. This can get more and more complicated as multiple independent teams in the software development organization collaborate on releasing software that may sometimes be packaged together in one large deployment binary. The challenge of ensuring that the correct version of software has been deployed can be quite difficult when considering such a scenario as most tools allow a granularity of a deployment binary, and cannot look inside.
Furthermore, in modern architectures, modern systems call out to a cloud service to discover their configuration. It therefore becomes a challenge to understand the actual running configuration as opposed to what is statically visible on the file system.
There is a need in the art for providing improved software configuration management.